import VuexDataState from 'vue-data-state'

export default VuexDataState.createStore({
  global: { // 全局状态
    userOnlint: {
      name: 'jyk' //
    }
  },
  local: { // 局部状态
    // 数据列表，使用前需要先注册
    dataListState1 () { // 显示博文列表用的状态
      return {
        findKind: {}, // 查询方式
        find: {}, // 查询关键字
        page: { // 分页参数
          pageTotal: 100,
          pageSize: 2,
          pageIndex: 1,
          orderBy: { id: false }
        },
        _query: {}, // 缓存的查询条件
        isReload: false // 重新加载数据，需要统计总数
      }
    },
    formState1 () {
      return {
        meta: {},
        show: false,
        state: 1 // 1添加；2修改；3查看；4:显示
      }
    },
    findState () {
      return {
        meta: {}
      }
    },
    helpBaseSet () {
      return {
        table: {
          id: 100, // 表ID
          name: '' // 表名
        },
        columns: [], // 字段信息
        forms: {}, // 表单信息
        finds: {}, // 查询信息
        grids: {}, // 列表信息
        pager: {}, // 分页信息
        buttons: {} // 操作按钮信息
      }
    },
    // 新版本
    dataListState () { // 获取列表数据的状态 dataPagerState
      return {
        query: {}, // 查询条件
        fixedQuery: {}, // 固定的查询条件
        pager: { // 分页参数
          pageTotal: 100, // 0：需要统计总数；其他：不需要统计总数
          pageSize: 5, // 一页记录数
          pageIndex: 1, // 第几页的数据，从 1  开始
          orderBy: { id: false } // 排序字段
        },
        choice: { // 列表里面选择的记录
          dataId: '', // 单选，便于修改和删除
          dataIds: [], // 多选，便于批量删除
          row: {}, // 选择的记录数据，仅限于列表里面的。
          rows: [] // 选择的记录数据，仅限于列表里面的。
        },
        hotkey: () => {}, // 处理快捷键的事件，用于操作按钮
        reloadFirstPager: () => {}, // 重新加载第一页，统计总数（添加后）
        reloadCurrentPager: () => {}, // 重新加载当前页，不统计总数（修改后）
        reloadPager: () => {} // 重新加载当前页，统计总数（删除后）

      }
    },
    formState () { // 表单的状态
      return {
        show: false,
        state: 1, // 1添加；2修改；3查看；4:显示
        dataId: 0 // 0：添加数据；其他：要修改的记录ID
      }
    },
    // tab 的状态
    tabState () {
      return {
        trigger: '', // 触发者，菜单触发，要回复初始状态，tab触发，保持状态
        menu: [], // 菜单的数据
        tabData: [], // 存放 tab 的数组
        activeName: '', // 当前激活的 tab
        activeId: 0 // 当前激活的 tab 的 id
      }
    },
    helpDataBaseMeta () { // 现在用的 help 里的表和字段的数据
      return {
        tableMeta: {
          tableId: 1000,
          tableName: '',
          colCount: 0,
          content: ''
        },
        columnListMeta: {}
      }
    }
  },
  // 可以给全局状态设置初始状态，同步数据可以直接在上面设置，如果是异步数据，可以在这里设置。
  init (state) {

  }
})
